// 渐入
@keyframes show {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

// 上浮
@keyframes fade-up {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-up-opacity {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 0.8;
    transform: translateY(0);
  }
}

// 下沉
@keyframes fade-down {
  from {
    opacity: 0;
    transform: translateY(-50px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

// 左移
@keyframes fade-left {
  from {
    opacity: 0;
    transform: translateX(10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

// 加载
@keyframes loading {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
  100% {
    opacity: 1;
  }
}

// 进度
@keyframes loading-width {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}

// 渐变
@keyframes gradientFlow {
  0%,
  100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

// 骨架屏加载
@keyframes skeleton-loading {
  0% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0 50%;
  }
}

// 旋转
@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

// 循环下沉
@keyframes moveDown {
  0%,
  100% {
    bottom: 30px;
  }
  50% {
    bottom: 60px;
  }
}

// fade
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.3s ease-in-out;
}

.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}

// fadeDown
.fadeDown-enter-active,
.fadeDown-leave-active {
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.fadeDown-enter-from,
.fadeDown-leave-to {
  opacity: 0;
  transform: translateY(-10px);
}

// toLeft
.toLeft-enter-active,
.toLeft-leave-active {
  transition: transform 0.3s ease;
}

.toLeft-enter-from,
.toLeft-leave-to {
  transform: translateX(300px);
}
